package com.bot.nft.module.dc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bot.nft.module.dc.domain.DcSellInfo;
import com.bot.nft.module.dc.domain.bo.DcSellInfoBo;
import com.bot.nft.module.dc.domain.bo.DcSellNftQueryBo;
import com.bot.nft.module.dc.domain.vo.DcSellInfoVo;
import com.bot.nft.module.dc.domain.vo.DcSellNftVo;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author RenXiaoZheng
 * @since 2024-01-24
 */
public interface IDcSellInfoService extends IService<DcSellInfo> {

    /**
     * app端分页查询市场藏品信息【市场一级列表】
     *
     * @param pageNo           当前页码
     * @param pageSize         每页条数
     * @param dcSellNftQueryBo 查询Bo
     * @return 二级市场藏品分页信息
     */
    Page<DcSellNftVo> pageMarketNft(Integer pageNo, Integer pageSize, DcSellNftQueryBo dcSellNftQueryBo);


    /**
     * 查询藏品寄售信息
     *
     * @param keyword  藏品名称关键字
     * @param pageNo   当前第几页
     * @param pageSize 每页显示多少条数据
     * @return PageInfo<DcSellInfoBo *> 分页信息和寄售藏品信息集合
     */
    Page<DcSellInfoVo> queryDcSellInfo(String keyword, Integer pageNo, Integer pageSize);

    /**
     * app端查看市场艺术品【市场二级列表藏品信息】
     *
     * @param nftId 藏品名称
     * @return 二级市场艺术品信息
     */
    DcSellNftVo viewMarketNft(String nftId);

    /**
     * 查看寄售藏品信息
     *
     * @param id 寄售藏品信息标识
     * @return DcSellInfoBo 寄售藏品信息，包含藏品名称、藏品单价、等属性
     */
    DcSellInfoVo getDcSellInfo(String id);


    /**
     * app端根据藏品id分页查询寄售藏品信息【市场二级列表】
     *
     * @param pageNo   当前页码
     * @param pageSize 每页条数
     * @param nftId    藏品标识
     * @return 寄售藏品信息
     */
    Page<DcSellInfoVo> pageDcSellInfo(Integer pageNo, Integer pageSize, String nftId);


    Boolean insertSellInfo(DcSellInfoBo dcSellInfoBo);


    DcSellInfoVo viewDcSellInfo(String id);


}
